package org.example.mapper;

import org.apache.ibatis.annotations.Param;
import org.example.POJO.Brand;
import org.example.POJO.User;

import java.util.List;
import java.util.Map;

/**
 * @Project ：learn_mybatis
 * @File ：UserMapper.java
 * @IDE ：IntelliJ IDEA
 * @Author ：自由如风间
 * @Date ：2025/3/24 15:38
 * @Description ：For study.
 */

// @Mapper
public interface BrandMapper {
    /**
     * 查询所有
     */
    List<Brand> selectAll();

    /**
     * 查看详情：根据id查询
     */
    Brand selectById(int id);

    /**
     * 条件查询
     *      参数接收：
     *          1.散装参数：如果方法中有多个参数，需要使用@Param("SQL参数占位符名称")
     *          2.对象参数：对象的属性名称要和参数占位符名称一致
     *          3.map集合参数
     * @param status
     * @param companyName
     * @param brandName
     * @return
     */
    List<Brand> selectByCondition(@Param("status") int status,
                                  @Param("companyName") String companyName,
                                  @Param("brandName") String brandName);

    List<Brand> selectByCondition(Brand brand);

    List<Brand> selectByCondition(Map map);

    List<Brand> selectBySingleCondition(Brand brand);

    /**
     * 添加
     * @param brand
     */
    void add(Brand brand);

    /**
     * 修改
     * @param brand
     * @return
     */
    int update(Brand brand);

    /**
     * 根据id删除
     * @param id
     */
    void deleteById(int id);

    void deleteByIds(@Param("ids") int[] ids);
}
